﻿using System;
using System.Collections.Generic;
using System.Text;

namespace CanSWAT.SWAT
{
    class FrozenSoilParameterFile : SingleParameterFile
    {
        public static string DEFAULT_NAME = "frozensoil.txt";

        public FrozenSoilParameterFile(string file)
            : base(file)
        { 
        }

        public override string Description
        {
            get { return "Frozen Soil"; }
        }

        public override string DefaultFileName
        {
            get { return "frozensoil.txt"; }
        }

        /// <summary>
        /// 1    |code, 0-original frozen soil algorithm; 1-modified algorithm
        /// 1.0  |usle_kc, usle_k correction coefficient under thawing condition 1.3
        /// 2.5  |erorgn_r, revised organic N enrichment ratio under thawing condition 0.5
        /// 0.15 |erorgp_r, revised organic P enrichment ratio under thawing condition 0.5
        /// 85   |phoskd_r, revised P soil partitioning coefficient under thawing condition 100
        /// 0.2  |nperco_r, revised N percolation coefficient under thawing condition 0.6
        /// 0.4  |usle_pr, revised usle_p for no-till
        /// 12   |pperco_r, revised pperco for no-tll
        /// 0.30 |psp_r, revised psp for no-till
        /// 0.15 |rsdco_r, revised rsdco for no-till
        /// 10   |p_updis_r, revised p_updis for no-till
        /// 15   |sol_solp_r, revised sol_solp for notill //7 for forage // 15 for notill
        /// 20   |n_updis_r, revised n_updis for no-till
        /// </summary>
        protected override List<SingleParameter> DefaultParameters
        {
            get
            {
                List<SingleParameter> parameters = new List<SingleParameter>();
                parameters.Add(new SingleParameter("code", "0-original frozen soil algorithm; 1-modified algorithm", 1));
                parameters.Add(new SingleParameter("usle_kc", "usle_k correction coefficient under thawing condition 1.3", 1.0));
                parameters.Add(new SingleParameter("erorgn_r", "revised organic N enrichment ratio under thawing condition 0.5", 2.5));
                parameters.Add(new SingleParameter("erorgp_r", "revised organic P enrichment ratio under thawing condition 0.5", 0.15));
                parameters.Add(new SingleParameter("phoskd_r", "revised P soil partitioning coefficient under thawing condition 100", 85));
                parameters.Add(new SingleParameter("nperco_r", "revised N percolation coefficient under thawing condition 0.6", 0.2));
                parameters.Add(new SingleParameter("usle_pr", "revised usle_p for no-till", 0.4));
                parameters.Add(new SingleParameter("pperco_r", "revised pperco for no-tll", 12));
                parameters.Add(new SingleParameter("psp_r", "revised psp for no-till", 0.30));
                parameters.Add(new SingleParameter("rsdco_r", "revised rsdco for no-till", 0.15));
                parameters.Add(new SingleParameter("p_updis_r", "revised p_updis for no-till", 10));
                parameters.Add(new SingleParameter("sol_solp_r", "revised sol_solp for notill //7 for forage // 15 for notill", 15));
                parameters.Add(new SingleParameter("n_updis_r", "revised n_updis for no-till", 20));

                return parameters;
            }
        }
    }
}
